﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Modelo.Sistema.Venta;
using Modelo.Sistema.Base;

namespace VistaOnlineR1._1.Models.Ventas.Pedido
{
    public class PedidoReporteModels
    {
        public static IList<PedidosPorBarrio> ObtenerDatosReportePedidosPorBarrio()
        {

            List<PedidosPorBarrio> c = new List<PedidosPorBarrio>();
            List<PedidosPorBarrio> c2 = new List<PedidosPorBarrio>();
            CatalogoPedidos catalogopedido = new CatalogoPedidos();
            CatalogoCliente catalogocliente = new CatalogoCliente();
            CatalogoBarrio catalogobarrio = new CatalogoBarrio();

            c = (from ped in catalogopedido.ListarPedidos()
                        join cli in catalogocliente.ListarCliente() on ped.Cliente.IdCliente equals cli.IdCliente
                        join bar in catalogobarrio.ListarBarrio() on cli.Barrio.IdBarrio equals bar.IdBarrio
                        where ped.Total > 0
                        select new PedidosPorBarrio(
                            bar.Nombre,
                            Convert.ToDouble(ped.Total)
                        )).ToList();


            var q = c.GroupBy(s => s.Barrio).Select(g => new { Name = g.Key, Count = g.Count() });

            foreach (var v in q)
            {
                c2.Add(new PedidosPorBarrio(v.Name,v.Count));
            }

            return c2;
        }
    }

    public class PedidosPorBarrio
    {
        string barrio;
        double cantidad;

        public string Barrio { get { return barrio; } }
        public double Cantidad { get { return cantidad; } }

        public PedidosPorBarrio()
        { 
        }

        public PedidosPorBarrio(string barrio, double cantidad)
        {
            this.barrio = barrio;
            this.cantidad = cantidad;
        }
    }
}